为什么写这篇
AI 助手 24 小时挂在公网机器上,最怕的不是它"乱跑",而是宿主被拖库你自己还不知道。
OpenClaw 里有个现成技能叫 healthcheck,定位很克制:只做只读体检,列出SSH、防火墙、更新、暴露面、备份、磁盘加密、网关安全七大项的风险,改配置前一定先问你。我就在本机(一台阿里云 ECS,iZ8vb32h2baoyiy6dhqxtuZ)实跑了一遍,把真实结果摊开讲。
实战踩坑提醒:healthcheck 技能明确说了——它不接管操作系统的防火墙 / SSH / 更新,只给建议。真正改这些,得你点头,而且改之前必须确认你还有别的登录通道,否则一脚把自个儿踢出门。
第一步:先搞清楚"我是谁、在哪"
体检前先摸清底盘,命令都不改动任何东西:
whoami # 我是谁 → 本机返回 admin
cat /etc/os-release # 系统版本
lsblk # 磁盘与挂载,看有没有加密层
本机 lsblk 出来的根盘是 vda(50G),普通的云盘,没有看到 LUKS 加密层——这意味着磁盘被物理拿走就能读。对一台个人助手机,这算中低风险,但如果你在机器上存了真实 API Key,就得心里有数。
第二步:SSH 这一关查什么
healthcheck 的重点项之一。直接读配置(只读,安全):
grep -iE '^(PermitRootLogin|PasswordAuthentication|Port|PubkeyAuthentication)' /etc/ssh/sshd_config
本机真实返回:
PermitRootLogin prohibit-password
PasswordAuthentication no
这两条已经是对的:
PermitRootLogin prohibit-password—— 允许 root 用密钥登,但禁止密码登 root,挡掉绝大部分爆破脚本。
PasswordAuthentication no—— 整台机只允许密钥登录,密码撞库彻底没戏。
如果你的机器返回的是 PasswordAuthentication yes,那就是在公网上"裸奔"。healthcheck 会建议你改成 no,但改之前要确保你手里已有可用密钥,否则改完自己都进不去。
第三步:防火墙,别想当然
很多人以为装了 ufw 就万事大吉,本机一查:
ufw status
# 返回: ufw not present
ufw 根本没装。那防火墙在哪?在阿里云安全组(控制台里那层)和底层 iptables 上,不在操作系统包里。这正是 healthcheck 强调的——它不替你管 OS 防火墙,云上的暴露面得去云厂商控制台看。
实战动作清单(需你确认后执行):
- 去 ECS 控制台安全组,只放行 22(SSH)、443、80,其余全拒。
- 如果确实要本地跑
ufw,先iptables -L -n看现状,再决定要不要叠加,别把已有的规则冲掉。
第四步:自动更新开着没
healthcheck 把"自动安全更新"列为一项。本机查到:
cat /etc/apt/apt.conf.d/20auto-upgrades
# APT::Periodic::Update-Package-Lists "1";
# APT::Periodic::Unattended-Upgrade "1";
两条都是 1,说明无人值守安全更新是开着的。这很好——CVE 补丁不用你手动盯。注意它只升安全更新,不会自作主张大版本升级把环境搞崩。
第五步:备份,最容易被忽略
healthcheck 会问你:配置、记忆、会话有没有可恢复备份?
本机的记忆在 /home/admin/.openclaw/workspace/memory/ 和 MEMORY.md;更早的发布产线里有一篇《OpenClaw-备份与灾难恢复实战》,讲的就是一条命令打包配置+记忆+会话。体检结论:记忆有,但有没有异地/定期快照,得你自己确认。
给个可落地的 cron 思路(用 exec + cron,不在这篇展开):
# 每天凌晨把 workspace 打 tar 丢到另一块盘或对象存储
tar czf /backup/openclaw-$(date +%F).tgz /home/admin/.openclaw/workspace
第六步:网关本身的安全
healthcheck 最后看 OpenClaw gateway:监听地址、鉴权、暴露面。
- 网关默认只绑本地 / 经受控通道访问,不要手滑把 gateway 端口直接暴露到 0.0.0.0 公网。
- 聊天渠道(微信/飞书/Discord)的 webhook 和 token,走
secrets管理,别写进明文脚本。
这部分 healthcheck 同样是"只建议不改",真要动 gateway 配置用 gateway 工具,且改动后不丢会话、可回滚。
小结
用 healthcheck 跑一遍,本机真实画像是这样的:
- ✅ SSH 已禁密码、禁 root 密码登 —— 这一关及格
- ⚠️ 防火墙在云安全组,本机无
ufw—— 去控制台核一遍规则
- ✅ 自动安全更新已开
- ⚠️ 根盘无加密 —— 存敏感 Key 要当心
- ⚠️ 备份有记忆但无定期快照确认 —— 补一条 cron
整套流程零改动、全只读,先看清再动手,这正是这个技能的设计底线。下次你拿到一台新机器,先让它"体检"再上线,比出了事再救省心十倍。
扫码关注公众号,获取更多 OpenClaw 实操技巧:
